]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar: Fix for RTL locales
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 20 Jun 2014 14:10:08 +0000 (16:10 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 24 Jun 2014 21:37:34 +0000 (23:37 +0200)
Unlike StTable, ClutterTableLayout does not take the actor's text
direction into account, so mirror columns ourselves now.

https://bugzilla.gnome.org/show_bug.cgi?id=731923

js/ui/calendar.js

index 4453de8f69069dd1bbbc8240ea22bb06b1c17c12..5a387f149fc0f9a11b3cf40fbdd62f1393eddeb1 100644 (file)
@@ -480,7 +480,11 @@ const Calendar = new Lang.Class({
             let customDayAbbrev = _getCalendarDayAbbreviation(iter.getDay());
             let label = new St.Label({ style_class: 'calendar-day-base calendar-day-heading',
                                        text: customDayAbbrev });
-            let col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7;
+            let col;
+            if (this.actor.get_text_direction() == Clutter.TextDirection.RTL)
+                col = 6 - (7 + iter.getDay() - this._weekStart) % 7;
+            else
+                col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7;
             layout.pack(label, col, 1);
             iter.setTime(iter.getTime() + MSECS_IN_DAY);
         }
@@ -648,7 +652,11 @@ const Calendar = new Lang.Class({
             button.style_class = styleClass;
 
             let offsetCols = this._useWeekdate ? 1 : 0;
-            let col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7;
+            let col;
+            if (rtl)
+                col = 6 - (7 + iter.getDay() - this._weekStart) % 7;
+            else
+                col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7;
             layout.pack(button, col, row);
 
             this._buttons.push(button);
@@ -656,7 +664,7 @@ const Calendar = new Lang.Class({
             if (this._useWeekdate && iter.getDay() == 4) {
                 let label = new St.Label({ text: _getCalendarWeekForDate(iter).toString(),
                                            style_class: 'calendar-day-base calendar-week-number'});
-                layout.pack(label, 0, row);
+                layout.pack(label, rtl ? 7 : 0, row);
             }
 
             iter.setTime(iter.getTime() + MSECS_IN_DAY);